<?php

/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Controller
 * @since         CakePHP(tm) v 0.2.9
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
 */
App::uses('Controller', 'Controller');

/**
 * Application Controller
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package		app.Controller
 * @link		http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
 */
class AppController extends Controller {

    public $components = array(
        'Session',
        'Auth' => array(
            'loginRedirect' => array(
                'controller' => 'Customer_Contact',
                'action' => 'index'
            ),
            'logoutRedirect' => array(
                'controller' => 'pages',
                'action' => 'display',
                'home'
            )
        )
    );

    public function beforeFilter() {
        $this->loadModel('Project');
        if (!($this->Session->check('Config.language'))) {
            $this->Session->write('Config.language', ENG_LANG);
        }
        $newRes = $this->Project->getNewResiden();
        $this->Session->write('Project_residen_new', $newRes);

        $newCom = $this->Project->getNewCommer();
        $this->Session->write('Project_commercial_new', $newCom);
        //debug($newCom);

        $this->set('local', $this->viewPath . '/' . $this->params['action']);

        $denyActions = array(
            'websettings' => array(
            ),
            'users' => array(
                'index', 'add', 'edit', 'delete'
            ),
            'customers' => array(
                'index', 'add', 'edit', 'delete', 'listall', 'view'
            ),
            'customercontacts' => array(
                'add', 'edit', 'delete', 'listall', 'view'
            )
        );

        if (!$this->Session->check('User')) {
            $c = strtolower($this->params['controller']);
            $a = strtolower($this->params['action']);
            if ($c == 'websettings') {
                if (in_array($a, $denyActions[$c])) {
                    //$this->redirect('/Pages/home');
                }
                $this->redirect('/Pages/home');
            } else if ($c == 'users') {
                if (in_array($a, $denyActions[$c])) {
                    $this->redirect('/Pages/home');
                }
            } else if ($c == 'customers') {
                if (in_array($a, $denyActions[$c])) {
                    $this->redirect('/Pages/home');
                }
            } else if ($c == 'customercontacts') {
                if (in_array($a, $denyActions[$c])) {
                    $this->redirect('/Pages/home');
                }
            }
            $this->Auth->allow();
        } else {

            if (strtolower($this->action) == 'login') {
                $this->redirect('/Pages/home');
            }
            $this->Auth->allow();
        }
    }

}
